package com.ruoyi.tws.api.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.MyPlusEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 车辆信息对象 tws_vehicle
 *  (实体类不要改名,com.ruoyi.common.wlhyupload.WlhyUpload中用类名判断单据类型)
 * 
 * @author ruoyi
 * @date 2022-01-20
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
@TableName("tws_vehicle")
public class Vehicle extends MyPlusEntity {
    private static final long serialVersionUID = 1L;

    /** id */
    @TableId
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /** 类型 1车头 2挂 */
    private String type;

    /** 车辆牌照号 */
    @Excel(name = "车辆牌照号")
    private String vehicleNumber;

    /** 车牌颜色代码 */
    @Excel(name = "车牌颜色代码")
    private String vehiclePlateColorCode;

    /** 车辆类型代码 */
    @Excel(name = "车辆类型代码")
    private String vehicleType;

    /** 车辆能源类型 */
    @Excel(name = "车辆能源类型")
    private String vehicleEnergyType;

    /** 核定载质量(千克) */
    @Excel(name = "核定载质量(千克)")
    private BigDecimal vehicleTonnage;

    /** 吨位，总质量(千克) */
    @Excel(name = "吨位(千克)")
    private BigDecimal grossMass;

    /** 道路运输证号 */
    @Excel(name = "道路运输证号")
    private String roadTransportCertificateNumber;

    /** 速记码 */
    @Excel(name = "速记码")
    private String shortCode;

    /** 车主id */
    @Excel(name = "车主id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long driverId;

    /** 所有人 */
    @Excel(name = "所有人")
    private String owner;

    /** 使用性质 */
    @Excel(name = "使用性质")
    private String useCharacter;

    /** 车辆识别代号 */
    @Excel(name = "车辆识别代号")
    private String vin;

    /** 发证机关 */
    @Excel(name = "发证机关")
    private String issuingOrganizations;

    /** 注册日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "注册日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date registerDate;

    /** 发证日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发证日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date issueDate;

    /** 认证状态 0：未认证 1：审核中 2：已认证 3：认证失败 */
    @Excel(name = "认证状态 0：未认证 1：审核中 2：已认证 3：认证失败")
    private String isCert;

    /** 状态1:正常 2：禁用 */
    @Excel(name = "状态 1:正常 2：禁用")
    private String state;

    /** 是否已上传 0未上传 1已上传 */
    private String isSendToPro;

    /** 行驶证主页照片 */
    private String xsCardImg1;

    /** 行驶证副页照片 */
    private String xsCardImg2;

    /** 道路运输证照片 */
    private String dlImg;

}
